﻿using System.Collections.Generic;
using DevTrack.Dominio.Entidades;

namespace DevTrack.Dominio.Repositorios
{
    public interface IRepositorio<T> where T : IEntidade
    {        
        /// <summary>
        /// Retorna Entidade aravés de Id informado
        /// </summary>
        /// <param name="id"></param>
        /// <returns>Entidade</returns>
        T Retorna(int id);

        /// <summary>
        /// Retorna todas as entidades
        /// </summary>
        /// <returns></returns>
        IList<T> RetornaTodos();

        /// <summary>
        /// Cria ou atualiza Entidade
        /// </summary>
        /// <param name="entidade"></param>
        /// <returns></returns>
        T Salva(T entidade);

        /// <summary>
        /// Exclui um entidade
        /// </summary>
        /// <param name="entidade"></param>
        /// 
        void Exclui(T entidade);
    }
}
